//
//
//class Solution {
//    public void nextPermutation(int[] nums) {
//        int i = nums.length - 2;
//        while (i >= 0 && nums[i] >= nums[i + 1]) i--;
//        if (i >= 0) {
//            int j = nums.length - 1;
//            while (j > i && nums[j] <= nums[i]) j--;
//            int tmp = nums[i];
//            nums[i] = nums[j];
//            nums[j] = tmp;
//        }
//        reverse(nums, i + 1, nums.length - 1);
//    }
//
//    public void reverse(int[] nums, int left, int right) {
//        while (left < right) {
//            int tmp = nums[left];
//            nums[left] = nums[right];
//            nums[right] = tmp;
//            left++;
//            right--;
//        }
//    }
//}